]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
loginManager: Return objects instead of multiple booleans
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 8 Jul 2022 14:23:39 +0000 (16:23 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 1 Aug 2022 18:58:37 +0000 (20:58 +0200)
Multiple booleans - both in arguments and return values - are almost
always problematic API, because people have to memorize (or more likely
look up) the meaning of each position.

Instead, return a JS object so each value has a name attached to it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2370>

js/misc/loginManager.js
js/misc/systemActions.js
js/ui/endSessionDialog.js

index 6317b1dc4ab4f6b6183218f940f757b11b7a5fc4..fb61d64cb5f3a8079109cde565c9ca1701b63cbc 100644 (file)
@@ -146,25 +146,31 @@ var LoginManagerSystemd = class extends Signals.EventEmitter {
     }
 
     async canSuspend() {
+        let canSuspend, needsAuth;
+
         try {
             const [result] = await this._proxy.CanSuspendAsync();
-            const needsAuth = result === 'challenge';
-            const canSuspend = needsAuth || result === 'yes';
-            return [canSuspend, needsAuth];
+            needsAuth = result === 'challenge';
+            canSuspend = needsAuth || result === 'yes';
         } catch (error) {
-            return [false, false];
+            canSuspend = false;
+            needsAuth = false;
         }
+        return {canSuspend, needsAuth};
     }
 
     async canRebootToBootLoaderMenu() {
+        let canRebootToBootLoaderMenu, needsAuth;
+
         try {
             const [result] = await this._proxy.CanRebootToBootLoaderMenuAsync();
-            const needsAuth = result[0] === 'challenge';
-            const canRebootToBootLoaderMenu = needsAuth || result[0] === 'yes';
-            return [canRebootToBootLoaderMenu, needsAuth];
+            needsAuth = result[0] === 'challenge';
+            canRebootToBootLoaderMenu = needsAuth || result[0] === 'yes';
         } catch (error) {
-            return [false, false];
+            canRebootToBootLoaderMenu = false;
+            needsAuth = false;
         }
+        return {canRebootToBootLoaderMenu, needsAuth};
     }
 
     setRebootToBootLoaderMenu() {
@@ -209,11 +215,17 @@ var LoginManagerDummy = class extends Signals.EventEmitter  {
     }
 
     canSuspend() {
-        return new Promise(resolve => resolve([false, false]));
+        return new Promise(resolve => resolve({
+            canSuspend: false,
+            needsAuth: false,
+        }));
     }
 
     canRebootToBootLoaderMenu() {
-        return new Promise(resolve => resolve([false, false]));
+        return new Promise(resolve => resolve({
+            canRebootToBootLoaderMenu: false,
+            needsAuth: false,
+        }));
     }
 
     setRebootToBootLoaderMenu() {
index 444ab4badb5b3e9d0472e68938e76a762f0d011f..c57afe5b5ed26254b5d5eaf923dcb0c7f729db1c 100644 (file)
@@ -351,7 +351,7 @@ const SystemActions = GObject.registerClass({
     }
 
     async _updateHaveSuspend() {
-        const [canSuspend, needsAuth] = await this._loginManager.canSuspend();
+        const {canSuspend, needsAuth} = await this._loginManager.canSuspend();
         this._canHaveSuspend = canSuspend;
         this._suspendNeedsAuth = needsAuth;
         this._updateSuspend();
index 5723a221ca51ecf689484c1a90062da809271feb..ca24d0698dfb9a5c2a47c67d769aa8127eaa2091 100644 (file)
@@ -305,7 +305,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
     }
 
     async _getCanRebootToBootLoaderMenu() {
-        const [canRebootToBootLoaderMenu] = await this._loginManager.canRebootToBootLoaderMenu();
+        const {canRebootToBootLoaderMenu} = await this._loginManager.canRebootToBootLoaderMenu();
         this._canRebootToBootLoaderMenu = canRebootToBootLoaderMenu;
     }